3. 데이터 전송 기초 3
1. 라우터 (Router): 네트워크 간 패킷 라우팅의 핵심
라우터의 기본 동작 원리
- 핵심 기능: LAN과 LAN을 연결하고 목적지에 따라 패킷을 처리
- 라우팅 과정: 여러 장치로 구성된 네트워크 세그먼트를 LAN으로 묶어 내부 패킷 처리 후 외부 LAN과 연결하여 상호 간 패킷 교환
라우터 패킷 처리 흐름
════════════════════════════════════════════
패킷 수신
│
↓
헤더 분석 (목적지 IP 확인)
│
↓
내부 LAN 대상인가?
│
├─ YES → 내부 라우팅 (LAN 포트로 전달)
│
└─ NO → 외부 라우팅 (WAN 포트로 전달)
라우터 구조
════════════════════════════════════════════
[LAN 포트] → 내부 네트워크 연결
[WAN 포트] → 외부 네트워크 연결
대규모 네트워크 연결
════════════════════════════════════════════
인접 라우터: 이더넷 케이블로 직접 연결
원거리 라우터: 전용선/ISP 회선 사용
└─ 인터넷 구조의 기반
라우터의 네트워크 계층 특성
- 프로토콜: TCP/IP 기반 동작
- 주소 체계: WAN에서는 글로벌 IP 주소 사용
- 엣지 라우터: 내부 LAN과 인터넷 경계에 설치하는 라우터
2. 액세스 포인트 (Access Point): 무선 연결의 허브
액세스 포인트의 역할과 특성
액세스 포인트 역할
════════════════════════════════════════════
[무선 장치들] )))))) [액세스 포인트 (L2 장치)] ──── [유선 네트워크]
광대역 라우터의 구성
════════════════════════════════════════════
광대역 라우터
├─ 라우터 기능 (L3 계층)
└─ 액세스 포인트 (L2 계층)
무선 LAN 연결 모드
════════════════════════════════════════════
1. 인프라스트럭처 모드
- AP를 통한 연결
- 일반적인 WiFi 환경
2. 애드혹 모드
- 장치 간 직접 연결
- 컴퓨터-프린터 직접 연결 등
핵심 특징 분석
- 기능 정의: 허브에 해당하는 장치로, 무선 LAN 구축을 위해 여러 기기의 무선 연결을 모아서 네트워크에 연결
- 계층 구분: 액세스 포인트는 2계층 장치, 라우터는 3계층 장치
- 무선 LAN에서의 역할: L2 스위치에 해당하는 역할 수행
연결 방식별 특성
| 모드 | 특징 | 용도 |
|---|---|---|
| 인프라스트럭처 모드 | 액세스 포인트를 통한 연결 | 일반적인 WiFi 환경 |
| 애드혹 모드 | 장치 간 직접 무선 링크 | 컴퓨터-프린터 직접 연결 등 |
3. 허브와 스위치: 연결 장치의 진화
허브 (Hub): 기본 접속 장치
허브의 기능
════════════════════════════════════════════
1. 다수 회선 정리 / 기기 접속 확보
2. 신호 증폭 (리피터 기능)
3. 캐스케이드 연결 (허브 간 연결)
현재 허브의 발전
════════════════════════════════════════════
전자회로/CPU 장착
│
├─ 이더넷 프레임 해석
│
└─ 스위칭 허브 (실질적으로 스위치)
스위치의 계층별 분류와 현대적 발전
스위치 계층별 분류
════════════════════════════════════════════
L2 스위치 (데이터 링크 계층)
├─ MAC 주소 기반 프레임 스위칭
└─ VLAN 지원, 세그먼트 분할
L3 스위치 (네트워크 계층)
├─ IP 기반 라우팅 (하드웨어 고속 처리)
└─ 다수 포트 지원, 라우터 기능 통합
L4 스위치 (전송 계층)
├─ 포트/세션 기반 로드 밸런싱
└─ TCP/UDP 헤더 분석, 트래픽 분산
L7 스위치 (애플리케이션 계층)
├─ HTTP/HTTPS 콘텐츠 분석
└─ 고급 로드밸런싱, SSL 오프로딩
L4/L7 스위치: 현대 네트워크의 핵심
L4 스위치 (전송 계층 스위치)
- 기본 원리: TCP/UDP 포트 번호와 세션 정보를 분석하여 트래픽 분산
- 주요 기능:
- 로드 밸런싱 (Round Robin, Least Connection, Weighted 등)
- 세션 유지 (Session Persistence)
- Health Check를 통한 서버 상태 모니터링
L7 스위치 (애플리케이션 계층 스위치)
- 고급 기능: HTTP 헤더, 쿠키, URL 경로 등 애플리케이션 데이터 분석
- 실무 활용:
- 콘텐츠 기반 라우팅 (Content-based Routing)
- SSL/TLS 터미네이션 및 오프로딩
- 웹 애플리케이션 방화벽 (WAF) 기능 통합
L7 스위치 처리 흐름 예시
════════════════════════════════════════════════════════════════
클라이언트 → L7 스위치/로드밸런서
│
│ HTTP 요청 (URL: /api/users)
│
↓
L7 스위치: URL 패턴 분석 (Content-based Routing)
│
└─→ API서버로 라우팅
클라이언트 → L7 스위치/로드밸런서
│
│ HTTP 요청 (URL: /images/logo.png)
│
↓
L7 스위치: 정적 콘텐츠, 로드밸런싱 적용
│
└─→ 웹서버1로 전달
클라이언트 → L7 스위치/로드밸런서
│
│ HTTPS 요청
│
↓
L7 스위치: SSL 터미네이션, 복호화 후 전달
│
└─→ 웹서버2로 HTTP 변환하여 전달
현대적 로드밸런서의 실전 활용
클라우드 환경에서의 로드밸런서 구성
클라우드 로드밸런서 계층 구조
════════════════════════════════════════════
[인터넷 - 사용자 요청]
│
↓
[로드밸런서 계층]
├─ L7 로드밸런서 (ALB/CloudFront)
└─ L4 로드밸런서 (NLB/ELB)
│
↓
[애플리케이션 계층]
├─ 웹서버 풀
├─ API 서버 풀
└─ 데이터베이스 클러스터
↑
│
[모니터링 & 헬스체크] ←─ 각 계층 상태 감시
실제 구현 예시: Nginx 로드밸런서 설정
upstream backend_servers {
# L4 로드밸런싱: 라운드 로빈
server 192.168.1.10:8080 weight=3;
server 192.168.1.11:8080 weight=2;
server 192.168.1.12:8080 weight=1;
# 헬스체크
health_check interval=30s fails=3 passes=2;
}
server {
listen 80;
server_name example.com;
# L7 콘텐츠 기반 라우팅
location /api/ {
proxy_pass http://api_servers;
proxy_set_header Host $host;
}
location /static/ {
proxy_pass http://static_servers;
expires 1y;
}
location / {
proxy_pass http://backend_servers;
proxy_set_header X-Real-IP $remote_addr;
}
}
4. 케이블과 커넥터: 물리적 연결의 기반
케이블 유형별 특성
케이블 분류
════════════════════════════════════════════
이더넷 LAN 케이블
- 일반적 사용
- 트위스트 페어
광섬유 케이블
- 고속/장거리 전송
- 10Gbps 이상 장비에 필수
전송 방식
════════════════════════════════════════════
직렬 케이블: 1bit씩 전송
병렬 케이블: 8bit/16bit 단위 전송
고속 네트워크
════════════════════════════════════════════
10Gbps 이상 장비
└─ 광섬유 케이블 필수
커넥터 유형
- 이더넷 커넥터: 표준 LAN 연결
- 광섬유 커넥터: 고속 데이터 전송
- USB 커넥터: 범용 연결
- 기타: 케이블 연결부의 물리적 인터페이스
5. 현대 네트워크 인프라 통합 구조
현대 네트워크 통합 구조
════════════════════════════════════════════════════════════════
[외부 네트워크]
├─ 인터넷
└─ CDN/클라우드 서비스
│
↓
[경계 및 보안 계층]
├─ 엣지 라우터
├─ 방화벽
└─ L7 스위치/WAF (SSL 오프로딩)
│
↓
[로드밸런싱 계층]
├─ L4 로드밸런서 (세션 기반 분산)
└─ L7 로드밸런서 (콘텐츠 기반 라우팅)
│
↓
[내부 네트워크]
├─ L3 스위치 (VLAN & 라우팅)
├─ L2 스위치 (세그먼트 연결)
└─ 액세스 포인트 (무선 연결)
│
↓
[서비스 계층]
├─ 웹서버 클러스터
├─ 애플리케이션 서버
└─ 데이터베이스 클러스터
↑
│
[모니터링 시스템] ←─ 각 계층 감시
현대적 네트워크 설계의 핵심 원칙
1. 다층 방어 구조
- L4/L7 스위치를 통한 트래픽 분산과 보안 강화
- DDoS 방어와 애플리케이션 레벨 보호
2. 확장성과 고가용성
- 로드밸런서를 통한 수평적 확장
- Health Check와 자동 Failover
3. 성능 최적화
- SSL 오프로딩을 통한 서버 부하 감소
- 콘텐츠 기반 라우팅으로 효율적 리소스 활용
로드밸런서 = 스위치의 소프트웨어 기능 중 하나
본질적으로는 모두 같은 일
패킷 처리의 본질
════════════════════════════════════════════
패킷이 들어옴
│
↓
어디로 보낼지 결정
│
↓
목적지로 전달
구현 방법만 다름
════════════════════════════════════════════
하드웨어 ASIC → '스위치'
소프트웨어 → '로드밸런서'
클라우드 서비스 → 'managed LB'
실제로는 전부 같은 로직
L2 스위치: "MAC 주소 보고 → 포트 결정"
L3 스위치: "IP 주소 보고 → 다음 홉 결정"
L4 로드밸런서: "포트+IP 보고 → 서버 결정"
L7 로드밸런서: "HTTP 헤더 보고 → 서버 결정"
결국 다 동일한 패턴
패킷 분석 → 룰 매칭 → 목적지 결정 → 전달
차이는 단지 구현 방식
물리적 스위치 (하드웨어)
ASIC 칩에 룰 하드코딩 → 나노초 단위 처리
로드밸런서 (소프트웨어)
CPU에서 소프트웨어로 룰 처리 → 마이크로초 단위 처리
클라우드 로드밸런서
분산 시스템으로 룰 처리 → 네트워크 지연 + 처리시간
네트워크 장비의 본질
════════════════════════════════════════════
공통 구성 요소:
├─ 패킷 라우팅 엔진
├─ 룰 매칭 알고리즘
└─ 포워딩 테이블
구현체들 (이름만 다름):
════════════════════════════════════════════
L2 스위치 → MAC 테이블
L3 스위치 → 라우팅 테이블
L4 로드밸런서 → 서버 풀
L7 로드밸런서 → 컨텐츠 룰
핵심 통찰:
- 로드밸런서 = 스위치에서 "서버 선택" 기능만 특화
- WAF = 로드밸런서에서 "보안 필터링" 기능 추가
- API 게이트웨이 = 로드밸런서에서 "API 관리" 기능 추가
실무에서 일어나는 일:
# Nginx 설정 파일
upstream backend {
server 192.168.1.10; # 스위치의 포트 테이블과 동일 로직
server 192.168.1.11;
}
location /api {
proxy_pass http://backend; # L7 스위치와 동일한 패킷 전달
}
결론: 네트워킹 = 패킷을 "어디로 보낼지" 결정할뿐